Industrial process control and automation systems are often used to automate large and complex industrial processes. Many control and automation systems include multiple layers of controllers that perform different functions. For example, lower layers could include controllers that receive measurements from sensors and generate control signals for actuators, and higher layers could include controllers that provide plantwide optimization solutions or other higher-level functions. Functionality in lower-level controllers is often implemented using function blocks. Function blocks represent discrete sections of code that can be executed by a controller. Groups of function blocks can be defined, connected, and executed in various ways to provide desired functionality within a controller.